/*
 * ContentTypeArquivo.java
 * Copyright (c) Faculdade Anhanguera de Anápolis.
 * Tecnologia em Análise e Desenvolvimento de Sistemas.
 * Projeto Multidisciplinar de Autoaprendizagem.
 *
 * Este software é confidencial e propriedade da Faculdade Anhanguera de Anápolis.
 * Não é permitida sua distribuição ou divulgação do seu conteúdo sem expressa autorização da Faculdade Anhanguera de Anápolis.
 * Este arquivo contém informações proprietárias.
 */
package br.com.pma.chamatec.dominio;

/**
 * Domínio de tipo de arquivos (content type).
 * 
 * @author Ludemeula Fernandes de Sá
 */
public enum ContentTypeArquivo {
	PDF("application/pdf",".pdf"),
	DOC("application/msword", ".doc"),
	JPG("image/jpeg", ".jpg"),
	JPEG("image/jpeg", ".jpeg"),
	CSV("application/csv",".csv"),
	HTML("text/html", ".html");
	
	String definicao;
	String extensao;

	/**
	 * Contrutor da classe.
	 *
	 * @param definicao
	 * @param extensao
	 */
	ContentTypeArquivo(String definicao, String extensao){
		this.definicao = definicao;
		this.extensao = extensao;
	}

	/**
	 * Recupera o tipo do arquivo pela extensão.
	 * 
	 * @param extensao
	 * @return
	 */
	public static ContentTypeArquivo obterPorExtensao(String extensao){
		ContentTypeArquivo[] ctas = ContentTypeArquivo.values();
		ContentTypeArquivo recuperado = null;
		for (int i = 0; i < ctas.length; i++) {
			if(ctas[i].getExtensao().equals(extensao)) {
				recuperado = ctas[i];
				break;
			}
		}
		return recuperado;
	}

	/**
	 * Recupera o tipo do arquivo pela definição.
	 * 
	 * @param definicao
	 * @return
	 */
	public static ContentTypeArquivo obterPorDefinicao(String definicao){
		ContentTypeArquivo[] ctas = ContentTypeArquivo.values();
		ContentTypeArquivo recuperado = null;
		for (int i = 0; i < ctas.length; i++) {
			if(ctas[i].getDefinicao().equals(definicao)) {
				recuperado = ctas[i];
				break;
			}
		}
		return recuperado;
	}

	/**
	 * @see java.lang.Enum#toString()
	 */
	@Override
	public String toString() {
		return this.getDefinicao();
	}

	/**
	 * @return the definicao
	 */
	public String getDefinicao() {
		return definicao;
	}

	/**
	 * @param definicao the definicao to set
	 */
	public void setDefinicao(String definicao) {
		this.definicao = definicao;
	}

	/**
	 * @return the extensao
	 */
	public String getExtensao() {
		return extensao;
	}

	/**
	 * @param extensao the extensao to set
	 */
	public void setExtensao(String extensao) {
		this.extensao = extensao;
	}
}